package jsyf.oa.facade.system;

import com.alibaba.dubbo.rpc.protocol.rest.support.ContentType;
import com.alibaba.fastjson.JSONObject;

import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

/**
 * Created by Administrator on 2017/12/8 0008.
 */
@Path("/userService")
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
@Produces({ContentType.APPLICATION_JSON_UTF_8, ContentType.TEXT_XML_UTF_8})
public interface UserFacade {

    @Path("/getVisiblePerson")
    List<JSONObject> getVisiblePerson(String jsonData);

    @Path("/updateWX")
    Boolean updateWX(String jsonData);

    @Path("/loginWX")
    String loginWX(String jsonData);

    @Path("/getPeopleBySupportUserId")
    List<JSONObject> getPeopleBySupportUserId(String jsonData);

    @Path("/getUserViewByLogin")
    String getUserViewByLogin(JSONObject jsonObject);

    @Path("/getById")
    JSONObject getById(String userId);


    @Path("/getUserById")
    JSONObject getUserById(String userId);

    @Path("/getRemind")
    JSONObject getRemind(String jsonData);

    @Path("/saveUser")
    String saveUser(String model);

    @Path("/appUpdateUser")
    String appUpdateUser(String jsonData);

    @Path("/updateFileNo")
    String updateFileNo(String model);

    @Path("/deleteUserByLeave")
    String deleteUserByLeave(String jsonObject);

    @Path("/getUserByTel")
    Boolean getUserByTel(String tel);

    @Path("/config")
    String saveUserRole(String userId, String roleIds);

    @Path("/getUserViewById")
    JSONObject getUserViewById(String id);

    @Path("/getTop10ByNameUser")
    List<JSONObject> getTop10ByNameUser(JSONObject jsonParams);

    @Path("/getLowerLevelByUserId")
    List<JSONObject> getLowerLevelByUserId(String jsonData);

    @Path("/getCompanyIdsByUserId")
    List<JSONObject> getCompanyIdsByUserId(JSONObject jsonParams);

    @Path("/getInferiorByParentId")
    List<JSONObject> getInferiorByParentId(String parentId);


    @Path("/getSubordinateByParentId")
    List<JSONObject> getSubordinateByParentId(String jsonData);

    @Path("/getSuperiorByUserId")
    List<JSONObject> getSuperiorByUserId(String userId);

    @Path("/getFirstParent")
    JSONObject getFirstParent(String userId);

    @Path("/getParentList")
    List<JSONObject> getParentList(String userId) throws Exception;

    @Path("/getSupportByUserId")
    JSONObject getSupportByUserId(String userId);

    @Path("/getSupportersByUserId")
    List<JSONObject> getSupportersByUserId(String userId) throws Exception;


    @Path("/getUserByUserId")
    List<JSONObject> getUserByUserId(String userId);

    @Path("/sort")
    Boolean sort(String userIds);

    @Path("/getUserViewByCondition")
    JSONObject getUserViewByCondition(JSONObject jsonObject, Integer requestPage, Integer pageSize);

    @Path("/getContacts")
    JSONObject getContacts(JSONObject jsonData);

    @Path("/getDownList")
    List<JSONObject> getDownList(String userId);

    @Path("getCosterTop10ByNameUser")
    List<JSONObject> getCosterTop10ByNameUser(JSONObject jsonParams);

    @Path("/RevertPinYin")
    Boolean RevertPinYin();

    @Path("/getBackRemindUser")
    List<JSONObject> getBackRemindUser();

    @Path("/getFrontRemindUser")
    List<JSONObject> getFrontRemindUser();

    @Path("/getALLFront")
    List<JSONObject> getALLFront();

    @Path("/getHRUser")
    List<JSONObject> getHRUser();

    @Path("/getCompanyUsers")
    List<JSONObject> getCompanyUsers(String companyId,String userId);

    @Path("/getAbsenceFrontUser")
    List<JSONObject> getAbsenceFrontUser(String companyId);

    @Path("/getAbsenceUser")
    List<JSONObject> getAbsenceUser(String companyId);

    @Path("/getBirthdayUsers")
    List<JSONObject> getBirthdayUsers(String date);

    @Path("/getUserBycondition")
    List<JSONObject> getUserBycondition(String condition);

    @Path("/MD5Util")
    Boolean MD5Util();

    @Path("/MD5Crack")
    JSONObject MD5Crack(String jsonData);

    @Path("/ForgetPwd")
    JSONObject ForgetPwd(String tel);

    @Path("/reEntry")
    JSONObject reEntry(String jsonData);

    @Path("/yzmCheck")
    String yzmCheck(String yzm, String userId);

    @Path("/lzSendMessage")
    JSONObject lzSendMessage(String jsonData);
  /*  @Path("/getProUserList")
    List<JSONObject> getProUserList(JSONObject jsonObject);*/
 /* @Path("insertProRegion2Province")
    Boolean insertProRegion2Province(JSONObject jsonParams);*/
    @Path("/updateAllUsersArchivaType")
    String updateAllUsersArchivaType();
}
